import {getSetting,chooseAddress,openSetting} from "../../utils/asyncWx.js";
import regeneratorRuntime from '../../lib/runtime/runtime';
/*
1.获取用户的收获地址
  1.绑定点击事件
  2.调用小程序内置 api 获取用户的收货地址 wx.chooseAddress
     1.假设 用户 点击获取收货地址的提示框 确定 authSetting scope.address
        scope 值 true 可以直接调用获取收货地址

      3.假设用户 从来没有调用过 收货地址的api
        scope的值为undefined 直接调用获取收货地址
      
      2.假设用户 点击获取收货地址的提示框 取消 scope 值 false
        1.诱导用户自己打开授权页面 wx.openSetting 当用户重新给予 获取地址权限的时候 
        2.就可以调用获取收货地址了

4 .把获取的地址存储到本地缓存中
5.页面加载完毕
  0.  onload onshow
  1.获取本地存储中的地址数据
  2.把数据 设置给data中的一个变量
*/


// Page({
//   //点击收获地址
//   handleChooseAddress(){
//    //获取权限状态
//     wx.getSetting({
//       success: (result) => {
//         //获取权限状态 发现一些 属性名很怪异的时候 都要使用[]来获取属性
//       const scopeAddress= result.authSetting["scope.address"];
//       if(scopeAddress===true||scopeAddress==undefined){
//         wx.chooseAddress({
//           success:(result1)=>{
//             console.log(result1);
//           }
//         });
//       }else{
//         wx.openSetting({
//         success:(result2)=>{
//           //
//           wx.chooseAddress({
//             success:(result3)=>{
//               console.log(result3);
//             }
//           })
//         }
//         })
//       }
//       }
//     })
//   }
// });

// Page({
//   async handleChooseAddress(){
//     // 1.获取权限状态
//     const res1=await getSetting();
//     const scopeAddress =res1.authSetting["scope.address"];
//     // 2.判断 权限状态
//     if(scopeAddress===true||scopeAddress==undefined){
//       //直接调用获取收货地址api
//       const res2 =await chooseAddress();
//       console.log(res2);
//     }else{
//       //先诱导用户打开授权页面
//       await openSetting();
//     }
//     //直接调用获取收货地址api
//     const res2 =await chooseAddress();
//     console.log(res2);

//   }
// })

  Page({
    data:{
      address:{}
    },
    onShow(){
      // 获取缓存中的收货地址
      const address =wx.getStorageSync("address");
      //给data 赋值
      this.setData({
        address
      })
        
    },
      async handleChooseAddress(){
      try{
        //1.获取权限状态
        const res1 =await getSetting();
        const scopeAddress =res1.authSetting["scope.address"];
        //判断权限状态
        if(scopeAddress ===false){
          await openSetting();
        }
        //调用获取收货地址的api
        const address =await chooseAddress();
        //存入到缓存中
        wx.setStorageSync("address", address);
          
      }catch(error){
      console.log(error);
    }
    }
    
  })